$(function () {

    var operid = 0;

    // 分页相关
    var totalCount = 0;     // 总条数
    var totalPage = -1;     // 总页数（初始值-1）
    var perSize = 5;        // 每页显示多少条
    var currentPage = 1;    // 当前页数（默认第一页）

    // 前端查询全部的部门信息
    queryAlldepart();
    function queryAlldepart() {
        // 清空初始化加载时加载的数据
        depotArray = [];
        // ajax默认是异步处理状态，异步处理状态是非阻塞状态
        $.ajax({
            url: "crm_bumen",            // 查询所有部门
            type: "post",                // 请求的方式，不区分大小写
            async: true,                 // 是否异步，true是默认值，false为同步请求
            cache: false,                // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
            //contentType: "application/json;charset=utf-8",
            datatype: "json",            // 返回类型，text文本、html页面、json数据
            // data:JSON.stringify(obj), // 全部查询，不需要请求参数
            success: function (data) {
                //alert("数据: " + JSON.stringify(data));
                var buMenList = data.buMenList;
                alert("数据: " + JSON.stringify(buMenList));
                for (var i = 0; i < buMenList.length; i++) {
                    var onlyJSON = buMenList[i];
/*                    depotArray[i] = {
                        "depotId": onlyJSON.depotId,
                        "depotName": onlyJSON.depotName,
                        "depotSetTime": new Date(onlyJSON.depotSetTime).toLocaleDateString(),
                        "depotDescribe": onlyJSON.depotDescribe
                    };*/
                    depotArray[i] = {
                        "depotId": onlyJSON.depotId,
                        "depotName": onlyJSON.depotName,
                        "depotSetTime": new Date(onlyJSON.depotSetTime).toLocaleDateString(),
                        "depotDescribe": onlyJSON.depotDescribe
                    };
                }
                displayUserTable();  // 显示部门列表
                add();               // 绑定新增事件
                update();            // 绑定更新事件
                closeupdate();       // 绑定关闭更新窗口事件
                pagebar();           // 显示页码
                pageClick();         // 绑定分页事件
                bumenLookup();       // 搜索框初始化及事件绑定
                checkAll();          // 检查所有初始化状态
                singalChecked();     // 检查鼠标按下事件
                //ajax返回
                //认证完成
            },
            error: function (response) {
                alert("出错" + response);
            }
        });
    }

    //显示表的主体数据
    function displayUserTable() {
        $("#depTable").html("");
        $("#checkAll")[0].checked = false;
        var start = (currentPage - 1) * perSize;
        var end = start + perSize;
        var outHtml = "";
        for (var i = start; i < end && i < depotArray.length; i++) {
            outHtml += `<tr>
        <td class="hidden">${i}</td>
            <td><input type='checkbox' name='checkItem' /></td>
            <td>${depotArray[i].depotId}</td>
            <td>${depotArray[i].depotName}</td>
            <td>${depotArray[i].depotSetTime}</td>
            <td>${depotArray[i].depotDescribe}</td>
        </tr>`;
        }
        $("#depTable").html(outHtml);
    }

    // 分页查询部门数据
    function queryPagedepart(currentPage) {
        // 清空初始化加载时加载的数据
        depotArray = [];
        var JsonData = {currentPage: currentPage,perSize:perSize};
        $.ajax({
            url: "crm_bumen_page",              // 分页查询所有部门
            type: "post",                       // 请求的方式，不区分大小写
            async: true,                        // 是否异步，true是默认值，false为同步请求
            cache: false,                       // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
            // contentType: "application/json;charset=utf-8",
            datatype: "json",                   // 返回类型，text文本、html页面、json数据
            // data:JSON.stringify(JsonData),      // 分页查询，请求参数
            data:JsonData,
            success: function (data) {
                //alert("数据: " + JSON.stringify(data));
                var buMenList = data.buMenList;
                alert("数据: " + JSON.stringify(buMenList));
                for (var i = 0; i < buMenList.length; i++) {
                    var onlyJSON = buMenList[i];
                    /*                    depotArray[i] = {
                                            "depotId": onlyJSON.depotId,
                                            "depotName": onlyJSON.depotName,
                                            "depotSetTime": new Date(onlyJSON.depotSetTime).toLocaleDateString(),
                                            "depotDescribe": onlyJSON.depotDescribe
                                        };*/
                    depotArray[i] = {
                        "depotId": onlyJSON.id,
                        "depotName": onlyJSON.bumenmingcheng,
                        "depotSetTime": new Date(onlyJSON.chenglishijian).toLocaleDateString(),
                        "depotDescribe": onlyJSON.bumenmiaoshu
                    };
                }
                displayBuMenPage();
            },
            error: function (response) {
                alert("出错" + response);
            }
        });
    }


    // 显示部门分页数据
    function displayBuMenPage() {
        $("#depTable").html("");
        $("#checkAll")[0].checked = false;
        var outHtml = "";
        for (var i = 0; i < depotArray.length; i++) {
            outHtml += `<tr>
        <td class="hidden">${i}</td>
            <td><input type='checkbox' name='checkItem' /></td>
            <td>${depotArray[i].depotId}</td>
            <td>${depotArray[i].depotName}</td>
            <td>${depotArray[i].depotSetTime}</td>
            <td>${depotArray[i].depotDescribe}</td>
        </tr>`;
        }
        $("#depTable").html(outHtml);
    }


    // 按条件查找部门
    function bumenLookup() {
        $("#lookUp").click(function () {
            // 下拉框选择value值
            let selectValue = $("#lookSelect option:selected").attr("value");
            alert("-- selectValue -- : " + selectValue);
            // 输入框输入的值
            let inputValue = $("#lookInput").val();
            alert("-- inputValue -- : " + inputValue);
            // 条件查询请求参数
            var JsonData;
            //清空临时数据内容
            depotArray = [];
            // 输入的内容为空时,根据下拉框的值查询,显示数据和页码
            // 否则按照查询输入框输入的值查询
            if (inputValue == "") {
                JsonData = {selectValue: selectValue};
            }else{
                JsonData = {inputValue: inputValue};
                $.ajax({
                    url:"crm_bumen_byCondition",            // 按条件查询所有部门
                    type:"post",                // 请求的方式，不区分大小写
                    async:true,                 // 是否异步，true是默认值，false为同步请求
                    cache:false,                // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                    // contentType:"application/json;charset=utf-8",
                    datatype:"json",            // 返回类型，text文本、html页面、json数据
                    data:JsonData,   // 条件查询请求参数
                    success:function(data){
                        var buMenList = data.buMenList;
                        alert("数据: " + JSON.stringify(buMenList));
                        for(var i = 0; i < buMenList.length; i++) {
                            var onlyJSON = buMenList[i];
/*                            depotArray[i] = {
                                "depotId": onlyJSON.depotId,
                                "depotName": onlyJSON.depotName,
                                "depotSetTime": new Date(onlyJSON.depotSetTime).toLocaleDateString(),
                                "depotDescribe": onlyJSON.depotDescribe
                            };*/
                            depotArray[i] = {
                                "depotId": onlyJSON.id,
                                "depotName": onlyJSON.bumenmingcheng,
                                "depotSetTime": new Date(onlyJSON.chenglishijian).toLocaleDateString(),
                                "depotDescribe": onlyJSON.bumenmiaoshu
                            };
                        }
                        displayUserTable();  // 显示部门列表
                    },
                    error:function(response){
                        alert("出错" + response);
                    }
                });
            }
        });
    }

    function add() {
        $("#btnAddForm").click(function () {
            operid = -1;
            $("#myModal").modal();
        });
        $("#btnAdd").click(function () {
            //添加数据
            //获取表单数据
            var id = $("#txtId").val();
            var depName = $("#txtdepName").val();
            var date = $("#txtDate").val();
            var describe = $("#txtDescribe").val();
            var JsonData = {depotId: id, depotName: depName, depotSetTime: date, depotDescribe: describe};
            $.ajax({
                url:"crm_bumen_add",            // 按条件查询所有部门
                type:"post",                // 请求的方式，不区分大小写
                async:true,                 // 是否异步，true是默认值，false为同步请求
                cache:false,                // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                contentType:"application/json;charset=utf-8",
                datatype:"json",            // 返回类型，text文本、html页面、json数据
                data:JSON.stringify(JsonData),   // 条件查询请求参数
                success:function(data){
                    alert("数据: " + JSON.stringify(data));
                    if (data.Status == 'success') {
                        queryAlldepart();
                    } else {
                        AjaxErro(data);
                    }
                },
                error:function(response){
                    alert("出错" + response);
                }
            });
            $("#myModal").modal("hide");
        })
    }

    function update() {
        $("#btnEditForm").click(function () {
            let index = parseInt($("#depTable").find(":checked").parents("tr").find(".hidden").text());
            if(isNaN(index)){
                alert("请选中修改项！！！");
            }else{
                alert("选中修改第" + (index+1) + "项" );
            }
            $("#txtDepartment").val(depotArray[index].depotName).prop("readOnly", true);
            $("#txtSetTime").val(depotArray[index].depotSetTime).prop("readOnly", true);
            $("#txtDescribe1").val(depotArray[index].depotDescribe);

            $("#editDepartment").modal();
            $("#btnAdd1").unbind('click');
            undateExcute(index);
        });
    }

    function undateExcute(index) {
        $("#btnAdd1").click(function () {
            //更新数据
            //获取表单数据
            var depotId = depotArray[index].depotId;
            var txtDescribe = $("#txtDescribe1").val();
            alert("-- txtDescribe -- ： "+ txtDescribe);
            JsonData = {depotId:depotId,depotDescribe:txtDescribe};
            $.ajax({
                url:"crm_bumen_update",     // 更新选中部门信息
                type:"post",                // 请求的方式，不区分大小写
                async:true,                 // 是否异步，true是默认值，false为同步请求
                cache:false,                // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                contentType:"application/json;charset=utf-8",
                datatype:"json",            // 返回类型，text文本、html页面、json数据
                data:JSON.stringify(JsonData),   // 条件查询请求参数
                success:function(data){
                    alert("数据: " + JSON.stringify(data));
                    if (data.Status == 'success') {
                        queryAlldepart();
                    } else {
                        AjaxErro(data);
                    }
                },
                error:function(response){
                    alert("出错" + response);
                }
            });
            $("#editDepartment").modal("hide");
        })
    }


    function closeupdate() {
        $("#btnCancel1").click(function () {
            $("#editDepartment").modal("hide");
        });
    }


    //用于显示页码
    function pagebar(index) {
        $.ajax({
            url: "crm_bumen_count",      // 查询所有部门数量
            type: "post",                // 请求的方式，不区分大小写
            async: true,                 // 是否异步，true是默认值，false为同步请求
            cache: false,                // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
            // contentType: "application/json;charset=utf-8",
            datatype: "json",            // 返回类型，text文本、html页面、json数据
            success: function (data) {
                alert("数据: " + JSON.stringify(data));
                totalCount = data.count;
                totalPage = Math.ceil(totalCount / perSize);
                if (currentPage > totalPage) {
                    currentPage = totalPage;
                }
                currentPage = index || currentPage;
                $("#divPage").html("");
                var str = "";
                for (var i = 0; i < totalPage; i++) {
                    if (currentPage == (i + 1)) {
                        str += `<button class='btn btn-primary page'>${i + 1}</button>`;
                    } else {
                        str += `<button class='btn btn-default page'>${i + 1}</button>`;
                    }
                }
                $("#divPage").html(str);
            },
            error: function (response) {
                alert("出错" + response);
            }
        });
    }

    function pageClick() {

        $("#divPage").on("click", ".page", function () {
            $(".page").each(function () {
                $(this).removeClass("btn-primary");
            });
            $(this).addClass("btn-primary");
            currentPage = Number(this.innerText);
            alert(" -- currentPage -- : " + currentPage);
            queryPagedepart(currentPage);
        });

        $("#pageNext").click(function () {
            if (currentPage == $("#divPage").children().length) {
                return 0;
            } else {
                currentPage++;
                alert(" -- currentPage -- : " + currentPage);
                queryPagedepart(currentPage);
                pagebar(currentPage);
            }
        });

        $("#pagePrevious").click(function () {
            if (currentPage == 1) {
                alert("已是第一页");
            } else {
                currentPage--;
                alert(" -- currentPage -- : " + currentPage);
                queryPagedepart(currentPage);
                pagebar(currentPage);
            }
        })

    }
});

function checkAll() {
    let allChecked = false;
    $("#checkAll").on("click", function () {
        if (!allChecked) {
            $("#depTable").find("input").each(function (index, element) {
                $(element).prop("checked", true);
                allChecked = true;
            });
        }
        else {
            $("#depTable").find("input").each(function (index, element) {
                $(element).prop("checked", false);
                allChecked = false;
            })
        }
    });
}

function singalChecked() {
    $("#depTable").find("input").each(function (index, element) {
        $("#depTable").on("mousedown", $(element), function () {
            $("#depTable").find("input").prop("checked", false);
        });
    });
}